---@class AbstractComposite:AbstractBehavior
local AbstractComposite = ClientFight.CreateClass("AbstractComposite",ClientFight.AbstractBehavior,ClientFight.IComposite)
function AbstractComposite:ctor()
    ---@type IBehaviour[]
    self.children = {}
end
---@param child IBehaviour
function AbstractComposite:addChild(child)
    table.insert(self.children,child)
end
---@param child IBehaviour
function AbstractComposite:removeChild(child)
    table.removeByValue(self.children,child)
end
function AbstractComposite:clearChild()
    self.children = {}
end
---@return IBehaviour[]
function AbstractComposite:getChildren()
    return self.children
end
---@param behaviours IBehaviour[]
function AbstractComposite:setChildren(behaviours)
    self.children = behaviours
end

